.text
.global xp_asm_memcpy
.type   xp_asm_memcpy,function

/* 
 * void* xp_asm_memcpy (void* dest, const void* src, xp_size_t n); 
 */

xp_asm_memcpy:
	pushl %esi
	pushl %edi

	movl 12(%esp),%edi
	movl 16(%esp),%esi
	movl 20(%esp),%ecx

	movl %edi, %eax
	
	cld
	rep movsb

	popl %edi
	popl %esi
	ret	
